package com.cjkj.consumables.service;

import com.cjkj.consumables.domain.TMedicalConsumablesInfo;
import com.cjkj.consumables.domain.dto.BatchOperateParam;
import com.cjkj.consumables.domain.dto.ConsumablesDistributionReq;
import com.cjkj.consumables.domain.dto.ListDataParam;
import com.cjkj.consumables.domain.vo.BatchOperateResult;

import java.util.List;

/**
 * 耗材信息Service接口
 * 
 * @author cjkj
 * @date 2025-10-11
 */
public interface ITMedicalConsumablesInfoService 
{

    /**
     * 查询耗材信息列表
     * 
     * @param param 耗材信息
     * @return 耗材信息集合
     */
    List<TMedicalConsumablesInfo> selectTMedicalConsumablesInfoList(ListDataParam param);

    /**
     * 新增耗材信息
     * 
     * @param tMedicalConsumablesInfo 耗材信息
     * @return 结果
     */
    int insertTMedicalConsumablesInfo(TMedicalConsumablesInfo tMedicalConsumablesInfo);

    /**
     * 批量新增耗材信息
     */
    BatchOperateResult batchAddInfo(BatchOperateParam param);

    /**
     * 批量删除耗材信息
     * 
     * @param ids 需要删除的耗材信息主键集合
     * @return 结果
     */
    int deleteTMedicalConsumablesInfoByIds(Long[] ids);

    /**
     * 耗材分配
     */
    int doDistribution(ConsumablesDistributionReq req);

    /**
     * 回收耗材
     * @param ids 耗材ID
     */
    int doRecovery(String[] ids);

    /**
     * 批量分配耗材
     */
    BatchOperateResult batchDistribution(BatchOperateParam param);

    /**
     * 批量回收耗材
     */
    BatchOperateResult batchRecovery(BatchOperateParam param);
}
